/*题目：编写一个函数，要求仅使用按位运算符和数组即可实现快速对四位2进制到16进制的
映射。提示结合>>移位运算符和按位或|运算符与底层硬件关联性非常大，其效率极快。
思路：使用一个全局映射数组变量 char map[]="0123456789ABCDEF";
char hbmap(char binstr[],int len); //len =4
调用样例：
hbmap("1111", 4);
返回样例：
'F'
*/
#include<stdio.h>
char hbmap(char binstr[],int len);
char map[] = "0123456789ABCDEF";

int main(void)
{
    char binstr[] = "1111";
    int len = 4;
    char hexChar = hbmap(binstr,len);
    printf("%c", hexChar);
    return 0;
}

char hbmap(char binstr[],int len)
{
    int decimal = 0;
    for (int i = 0; i < len; ++i)
    {
        decimal = (decimal << 1) | (binstr[i] - '0');
    }
     return map[decimal];
    

}